<?php

/**
 * This is the model class for table "tb_detalles".
 *
 * The followings are the available columns in table 'tb_detalles':
 * @property integer $idtb_detalles
 * @property string $nombrecontacto
 * @property string $nombregerente
 * @property string $telefonocontacto
 * @property string $telefonogenrente
 * @property string $direccioncontacto
 * @property string $direcciongerente
 * @property string $faxempresa
 * @property string $direccionalterna
 * @property string $telefonomovil
 * @property string $email
 * @property string $vendedorasignado
 * @property integer $ranking
 * @property string $tb_cliente_codigo
 * @property integer $tb_zonas_idtb_zonas
 *
 * The followings are the available model relations:
 * @property TbCliente $tbClienteCodigo
 * @property TbZonas $tbZonasIdtbZonas
 */
class TbDetalles extends CActiveRecord
{
	public $opcRetorno;
	public $zonaActual;
	public $tiempoLLamada;
	public $rankingActual;
	/**
	 * Returns the static model of the specified AR class.
	 * @return TbDetalles the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	public function obtenerRanking(){
		return array(1=>'A1',
					2=>'A2',
					3=>'A3',
					4=>'B1',
					5=>'B2',
					6=>'B3',
					7=>'C1',
					8=>'C2',
					9=>'C3'
		);
	}
	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'tb_detalles';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
		array('nombrecontacto, telefonocontacto, direccioncontacto, tb_cliente_codigo, tb_zonas_idtb_zonas', 'required'),
		array('ranking, tb_zonas_idtb_zonas', 'numerical', 'integerOnly'=>true),
		array('nombrecontacto, nombregerente, direccioncontacto, direcciongerente, direccionalterna, email, vendedorasignado', 'length', 'max'=>100),
		array('telefonocontacto, telefonogenrente', 'length', 'max'=>40),
		array('faxempresa, telefonomovil', 'length', 'max'=>45),
		array('tb_cliente_codigo', 'length', 'max'=>20),
		array('email','email','checkMX'=>true),
		// The following rule is used by search().
		// Please remove those attributes that should not be searched.
		array('idtb_detalles, nombrecontacto, nombregerente, telefonocontacto, telefonogenrente, direccioncontacto, direcciongerente, faxempresa, direccionalterna, telefonomovil, email, vendedorasignado, ranking, tb_cliente_codigo, tb_zonas_idtb_zonas', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'tbClienteCodigo' => array(self::BELONGS_TO, 'TbCliente', 'tb_cliente_codigo'),
			'tbZonasIdtbZonas' => array(self::BELONGS_TO, 'TbZonas', 'tb_zonas_idtb_zonas'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'idtb_detalles' => 'Id',
			'nombrecontacto' => 'Nombre del Contacto',
			'nombregerente' => 'Nombre del Gerente',
			'telefonocontacto' => 'Telefono del Contacto',
			'telefonogenrente' => 'Telefono del Gerente',
			'direccioncontacto' => 'Direccion del Contacto',
			'direcciongerente' => 'Direccion del Gerente',
			'faxempresa' => 'Fax (Empresa)',
			'direccionalterna' => 'Direccion Alterna',
			'telefonomovil' => 'Telefono (Movil)',
			'email' => 'Email',
			'vendedorasignado' => 'Vendedor Asignado',
			'ranking' => 'Ranking',
			'rankingActual'=>'Ranking',
			'tb_cliente_codigo' => 'Codigo del Cliente',
			'tb_zonas_idtb_zonas' => 'Zona',
			'zonaActual'=>'Zona',
			'tiempoLLamada'=>'Tiempo de la Llamada',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('idtb_detalles',$this->idtb_detalles);
		$criteria->compare('nombrecontacto',$this->nombrecontacto,true);
		$criteria->compare('nombregerente',$this->nombregerente,true);
		$criteria->compare('telefonocontacto',$this->telefonocontacto,true);
		$criteria->compare('telefonogenrente',$this->telefonogenrente,true);
		$criteria->compare('direccioncontacto',$this->direccioncontacto,true);
		$criteria->compare('direcciongerente',$this->direcciongerente,true);
		$criteria->compare('faxempresa',$this->faxempresa,true);
		$criteria->compare('direccionalterna',$this->direccionalterna,true);
		$criteria->compare('telefonomovil',$this->telefonomovil,true);
		$criteria->compare('email',$this->email,true);
		$criteria->compare('vendedorasignado',$this->vendedorasignado,true);
		$criteria->compare('ranking',$this->ranking);
		$criteria->compare('tb_cliente_codigo',$this->tb_cliente_codigo,true);
		$criteria->compare('tb_zonas_idtb_zonas',$this->tb_zonas_idtb_zonas);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
	public function obtenerZonas(){
		return (CHtml::listData(TbZonas::model()->findAll(),'idtb_zonas','zona'));
	}
	protected function afterFind(){
		parent::afterFind();
		$zon  = TbZonas::model()->findByPk($this->tb_zonas_idtb_zonas);
		$this->zonaActual = $zon->zona;
		switch($this->ranking){
			case 0: $this->rankingActual="S/R";
					break;
			case 1: $this->rankingActual="A1";
					break;
			case 2: $this->rankingActual="A2";
					break;
			case 3: $this->rankingActual="A3";
					break;
			case 4: $this->rankingActual="B1";
					break;
			case 5: $this->rankingActual="B2";
					break;
			case 6: $this->rankingActual="B3";
					break;
			case 7: $this->rankingActual="C1";
					break;
			case 8: $this->rankingActual="C2";
					break;
			case 9: $this->rankingActual="C3";
					break;
				
		}
	}
}